package unit2.part2;

import java.text.NumberFormat;

public class TypeTest {
    public static void main(String[] args) {
        // 整数
        // 不同进制的展示
        int i2 = 0b10;//2
        int i8 = 010;//3
        int i10 = 10;//10
        int i16 = 0x10;//16
        // 其他整数类型，存在原因是减少内存占用
        byte b = 10;
        System.out.println(Byte.MIN_VALUE + "~" + Byte.MAX_VALUE);
        short s = 10;
        System.out.println(Short.MIN_VALUE + "~" + Short.MAX_VALUE);
        int i = 10;
        System.out.println(Integer.MIN_VALUE + "~" + Integer.MAX_VALUE);
        long l = 10L;
        System.out.println(Long.MIN_VALUE + "~" + Long.MAX_VALUE);
        // 整数的运算
        int divisor = 100;
        int dividend = 3;
        System.out.println(divisor / dividend);// 整数的运算结果也是整数，直接忽略小数
        System.out.println(divisor % dividend);// 仅有整数才能进行取余操作
        System.out.println("====================================");
        // 浮点数
        double d_normal = 31415926;// 普通double
        double d_science = 3.1415926e7;// 科学记数法
        System.out.println(d_normal);
        System.out.println(d_science);// 都会以科学记数法展示
        System.out.println(d_normal == d_science);// 相等
        NumberFormat numberFormat = NumberFormat.getInstance();// 数字格式化类
        numberFormat.setGroupingUsed(false);// 展示时不包含分割符
        System.out.println(numberFormat.format(d_science));// 以一般格式展示
        float f = 10f;
        double d = 10;
        System.out.println(Float.MIN_VALUE + "~" + Float.MAX_VALUE);
        System.out.println(Double.MIN_VALUE + "~" + Double.MAX_VALUE);
        double r = 3.2;
        System.out.println(r * r);// 浮点数的运算结果也是浮点数
        System.out.println("====================================");
        // 字符
        char c = 'c';
        i = c;
        System.out.println((int) Character.MIN_VALUE + "~" + (int) Character.MAX_VALUE);
        // 布尔
        boolean bo = true;
    }
}
